Public Member Functions | |
| Filemanager () | |
| getActiveFolder () | |
| getAction () | |
| getActionID () | |
| getImgFolder () | |
| showTree () | |
| showFiles ($statisticView=false) | |
| runAction ($file, $COLS, $action="", $actionID="", $activeFolder="") | |
| deleteFolder ($folderID) | |
| deleteFile ($file) | |
| createLink ($oldOnes=true, $vars= '', $link= '') | |
| downloadFile ($fileID) | |
| openLink ($fileID) | |
| replaceSpecialChars ($string, $special) | |
| canSeeFile ($fileID) | |
| getArchivedFolder ($folderID, $recursion=FALSE) | |
Private Member Functions | |
| setRessourceVisibility ($ressourceID, $visibilityToSet, $contentRecursive) | |
Private Attributes | |
| $mimeTypes = array() | |
| $imgFolder | |
| $activeFolder | |
| $action | |
| $actionID | |
| $visibleFiles | |
Definition at line 58 of file class.filemanger.inc.php.
| Filemanager::canSeeFile | ( | $ | fileID | ) |
Ermittelt Sichtbarkeits-/Downloadrechte von Userid auf fileId
| int | [$fileID] Die ID des files (folder/link/file) zum Rechte ermitteln |
Definition at line 444 of file class.filemanger.inc.php.
References $_SESSION, and $db.
Referenced by downloadFile(), openLink(), and showFiles().
00444 { 00445 /* Sehen kann man wenn: 00446 - Man Admin/Dozent ist 00447 - Man Besitzer ist 00448 - Tutor und visibleMode=2 00449 - visibleMode=1 00450 - visibleMode aller übergeordneten Ordner != 1 00451 - Explizite User-Berechtigungen vorliegen */ 00452 global $db; 00453 // Admin oder Dozent 00454 if ($_SESSION['usergroup'] == ADMIN || $_SESSION['usergroup'] == DOZENT) return true; 00455 $file = $db->get_row("SELECT courseID, userID, visible_type, parent_object FROM filelist WHERE fileID='$fileID'"); 00456 // Es gibt keine solche Ressource 00457 if (!isset($file)) return false; 00458 // Wenn falscher Kurs gleich raus 00459 if (is_null($file) || $_SESSION['course'] != $file->courseID && $file->courseID != 0) return false; 00460 // Alle duerfen sehen 00461 if ($file->visible_type == 1) { 00462 // nur wenn die Datei nicht in einem für Studenten nicht freigegebenen (Über-)Ordner liegt 00463 $parentID = $file->parent_object; 00464 while ($parentID != 0) { 00465 $parentFolder = $db->get_row("SELECT visible_type, parent_object FROM filelist WHERE fileID='$parentID'"); 00466 if ($parentFolder->visible_type > 1) return false; 00467 $parentID = $parentFolder->parent_object; 00468 } 00469 return true; 00470 } 00471 // Tutor 00472 if (isset($_SESSION['assistent']) && $file->visible_type == 2) { 00473 // nur wenn die Datei nicht in einem nur für Dozenten freigegebenen (Über-)Ordner liegt 00474 $parentID = $file->parent_object; 00475 while ($parentID != 0) { 00476 $parentFolder = $db->get_row("SELECT visible_type, parent_object FROM filelist WHERE fileID='$parentID'"); 00477 if ($parentFolder->visible_type == 3) return false; 00478 $parentID = $parentFolder->parent_object; 00479 } 00480 return true; 00481 } 00482 // Besitzer 00483 if ($_SESSION['userid'] == $file->userID) return true; 00484 // Einzelberechtigung (gilt nicht, falls ein übergeordneter Ordner eine geringere Sichtbarkeit hat!!) 00485 if ($db->get_var("SELECT count(*) FROM filevisible WHERE fileID='$fileID' AND userID='".$_SESSION['userid']."'") > 0) return true; 00486 return false; 00487 }
| Filemanager::createLink | ( | $ | oldOnes = true, |
|
| $ | vars = '', |
|||
| $ | link = '' | |||
| ) |
Erstellt einen Link mit GET Variablen
| bool | [$oldOnes] Gibt an ob bisher existierende GET Variablen mit in den Link eingebaut werden. | |
| array | [$vars] Ein Array (Aufbau wie $_GET) mit den Variabeln und WErten die in den Link eingebaut werden | |
| string | [$link] Falls nicht PHP_SELF das Ziel ist muss hier der Dateiname angegeben werden. |
Definition at line 346 of file class.filemanger.inc.php.
00346 { 00347 if ($link == "") $link = PATH_TO_ROOT.SCRIPT_NAME; 00348 if (!is_array($vars)) $vars = $_GET; 00349 elseif (count($_GET) > 0 && $oldOnes) $vars = array_merge($_GET, $vars); 00350 foreach($vars as $getVarName => $getVarValue) { 00351 if (trim($getVarValue) != "" && isset($getVarValue)) $getVars[] = urlencode($getVarName) ."=".urlencode($getVarValue); 00352 } 00353 return $link."?".implode($getVars, "&"); 00354 }
| Filemanager::deleteFile | ( | $ | file | ) |
Löscht eine Datei physikalisch
| string | [$file] Dateiname der Datei |
Definition at line 282 of file class.filemanger.inc.php.
References $_SESSION.
Referenced by deleteFolder(), and runAction().
00282 { 00283 global $settings; 00284 $basedir = PATH_TO_ROOT.$settings["upload_path"].'filemanager/courseID/'.$_SESSION['course']; 00285 if (!file_exists($basedir."/".$file)) return false; 00286 if (!unlink($basedir."/".$file)) return false; 00287 return true; 00288 }
| Filemanager::deleteFolder | ( | $ | folderID | ) |
Löscht einen Ordner mit allem Inhalt und Unterordnern
| int | [$folderID] ID des zu loeschenden Ordners |
Definition at line 251 of file class.filemanger.inc.php.
References $db, and deleteFile().
Referenced by runAction().
00251 { 00252 global $db, $EZSQL_ERROR; 00253 $folders = $db->get_results("SELECT type, fileID, link FROM filelist WHERE parent_object='$folderID'"); 00254 if ($folders) { 00255 foreach($folders as $folder) { 00256 if ($folder->type == "file") { 00257 $this->deleteFile($folder->link); 00258 // Datei aus Suchmaschinen-Index löschen 00259 $spider = new Spider(); 00260 $spider->start("remove-file", $folder->fileID); 00261 } 00262 $this->deleteFolder($folder->fileID); 00263 } 00264 } 00265 $errorCount = count($EZSQL_ERROR); 00266 $db->query("DELETE FROM filelist WHERE fileID='$folderID'"); 00267 $db->query("DELETE FROM filelog WHERE fileID='$folderID'"); 00268 $db->query("DELETE FROM filetreelayout WHERE folderID='$folderID'"); 00269 $db->query("DELETE FROM filevisible WHERE fileID='$folderID'"); 00270 RoleArtefacts::deleteItem(RESSOURCE, (int)$folderID); 00271 TeamArtefacts::deleteItem(RESSOURCE, (int)$folderID); 00272 if (count($EZSQL_ERROR) > $errorCount) return false; 00273 return true; 00274 }
| Filemanager::downloadFile | ( | $ | fileID | ) |
Schickt eine auf dem Server liegende Datei an den Browser
| int | [$fileID] Die ID des zu sendenden Files |
Definition at line 362 of file class.filemanger.inc.php.
References $_SESSION, $db, and canSeeFile().
00362 { 00363 global $settings, $db; 00364 // Dateiname generieren 00365 $file = $db->get_row("SELECT name, link, size, extension, orig_filename, courseID FROM filelist WHERE fileID='".$fileID."'"); 00366 if (!$this->canSeeFile($fileID)) { 00367 return "Sie haben keine Berechtigung diese Datei herunterzuladen!"; 00368 } 00369 // Verzeichnis dass die hochgeladenen Dateien enthält 00370 $basedir = PATH_TO_ROOT.$settings["upload_path"].'filemanager/courseID/'.$file->courseID; 00371 //die datei wie sie auf dem server liegt (der dateiname ist verschlüsselt) 00372 $filename = sprintf("%s/%s", $basedir, $file->link); 00373 if (!file_exists($filename)) return "Datei nicht vorhanden, bitte wenden Sie sich an den Administrator!"; 00374 //den mimetypen bestimmen 00375 if (isset($this->mimeTypes[$file->extension])) { 00376 $mimetype = $this->mimeTypes[$file->extension]; 00377 } else { 00378 $mimetype = "application/octet-stream"; 00379 } 00380 // Zugriff wird geloggt 00381 $time = time(); 00382 $db->query("INSERT INTO filelog (userID, fileID, date) VALUES ('".$_SESSION['userid']."','$fileID','$time')"); 00383 $db->query("UPDATE filelist SET counter=counter+1 WHERE fileID='$fileID'"); 00384 // Output-Buffering abschalten 00385 ob_end_clean(); 00386 // HTTP Header Informationen senden, die ersten beiden sind wichtig für den IE 00387 header("Pragma: private"); 00388 header("Cache-control: private, must-revalidate"); 00389 header("Content-Type: $mimetype"); 00390 header("Content-Disposition: attachment; filename=\"".$file->orig_filename."\""); 00391 header("Content-Transfer-Encoding: binary"); 00392 header("Content-Length: ".$file->size); 00393 //die datei senden 00394 readfile($filename); 00395 return ""; 00396 }
| Filemanager::Filemanager | ( | ) |
Konstruktor
public
Definition at line 70 of file class.filemanger.inc.php.
References $_SESSION, and $db.
00070 { 00071 global $db, $resDB; 00072 $this->imgFolder = PATH_TO_ROOT.'ressourcen/icons/'; 00073 // Liste mit Mimetypen f�llen 00074 $this->mimeTypes = array('ez' => 'application/andrew-inset', 'hqx' => 'application/mac-binhex40', 'cpt' => 'application/mac-compactpro', 'doc' => 'application/msword', 'bin' => 'application/octet-stream', 'dms' => 'application/octet-stream', 'lha' => 'application/octet-stream', 'lzh' => 'application/octet-stream', 'exe' => 'application/octet-stream', 'class' => 'application/octet-stream', 'so' => 'application/octet-stream', 'dll' => 'application/octet-stream', 'oda' => 'application/oda', 'pdf' => 'application/pdf', 'ai' => 'application/postscript', 'eps' => 'application/postscript', 'ps' => 'application/postscript', 'smi' => 'application/smil', 'smil' => 'application/smil', 'mif' => 'application/vnd.mif', 'xls' => 'application/vnd.ms-excel', 'ppt' => 'application/vnd.ms-powerpoint', 'wbxml' => 'application/vnd.wap.wbxml', 'wmlc' => 'application/vnd.wap.wmlc', 'wmlsc' => 'application/vnd.wap.wmlscriptc', 'bcpio' => 'application/x-bcpio', 'vcd' => 'application/x-cdlink', 'pgn' => 'application/x-chess-pgn', 'cpio' => 'application/x-cpio', 'csh' => 'application/x-csh', 'dcr' => 'application/x-director', 'dir' => 'application/x-director', 'dxr' => 'application/x-director', 'dvi' => 'application/x-dvi', 'spl' => 'application/x-futuresplash', 'gtar' => 'application/x-gtar', 'hdf' => 'application/x-hdf', 'js' => 'application/x-javascript', 'skp' => 'application/x-koan', 'skd' => 'application/x-koan', 'skt' => 'application/x-koan', 'skm' => 'application/x-koan', 'latex' => 'application/x-latex', 'nc' => 'application/x-netcdf', 'cdf' => 'application/x-netcdf', 'sh' => 'application/x-sh', 'shar' => 'application/x-shar', 'swf' => 'application/x-shockwave-flash', 'sit' => 'application/x-stuffit', 'sv4cpio' => 'application/x-sv4cpio', 'sv4crc' => 'application/x-sv4crc', 'tar' => 'application/x-tar', 'tcl' => 'application/x-tcl', 'tex' => 'application/x-tex', 'texinfo' => 'application/x-texinfo', 'texi' => 'application/x-texinfo', 't' => 'application/x-troff', 'tr' => 'application/x-troff', 'roff' => 'application/x-troff', 'man' => 'application/x-troff-man', 'me' => 'application/x-troff-me', 'ms' => 'application/x-troff-ms', 'ustar' => 'application/x-ustar', 'src' => 'application/x-wais-source', 'xhtml' => 'application/xhtml+xml', 'xht' => 'application/xhtml+xml', 'zip' => 'application/zip', 'au' => 'audio/basic', 'snd' => 'audio/basic', 'mid' => 'audio/midi', 'midi' => 'audio/midi', 'kar' => 'audio/midi', 'mpga' => 'audio/mpeg', 'mp2' => 'audio/mpeg', 'mp3' => 'audio/mpeg', 'aif' => 'audio/x-aiff', 'aiff' => 'audio/x-aiff', 'aifc' => 'audio/x-aiff', 'm3u' => 'audio/x-mpegurl', 'ram' => 'audio/x-pn-realaudio', 'rm' => 'audio/x-pn-realaudio', 'rpm' => 'audio/x-pn-realaudio-plugin', 'ra' => 'audio/x-realaudio', 'wav' => 'audio/x-wav', 'pdb' => 'chemical/x-pdb', 'xyz' => 'chemical/x-xyz', 'bmp' => 'image/bmp', 'gif' => 'image/gif', 'ief' => 'image/ief', 'jpeg' => 'image/jpeg', 'jpg' => 'image/jpeg', 'jpe' => 'image/jpeg', 'png' => 'image/png', 'tiff' => 'image/tiff', 'tif' => 'image/tiff', 'djvu' => 'image/vnd.djvu', 'djv' => 'image/vnd.djvu', 'wbmp' => 'image/vnd.wap.wbmp', 'ras' => 'image/x-cmu-raster', 'pnm' => 'image/x-portable-anymap', 'pbm' => 'image/x-portable-bitmap', 'pgm' => 'image/x-portable-graymap', 'ppm' => 'image/x-portable-pixmap', 'rgb' => 'image/x-rgb', 'xbm' => 'image/x-xbitmap', 'xpm' => 'image/x-xpixmap', 'xwd' => 'image/x-xwindowdump', 'igs' => 'model/iges', 'iges' => 'model/iges', 'msh' => 'model/mesh', 'mesh' => 'model/mesh', 'silo' => 'model/mesh', 'wrl' => 'model/vrml', 'vrml' => 'model/vrml', 'css' => 'text/css', 'html' => 'text/html', 'htm' => 'text/html', 'asc' => 'text/plain', 'txt' => 'text/plain', 'rtx' => 'text/richtext', 'rtf' => 'text/rtf', 'sgml' => 'text/sgml', 'sgm' => 'text/sgml', 'tsv' => 'text/tab-separated-values', 'wml' => 'text/vnd.wap.wml', 'wmls' => 'text/vnd.wap.wmlscript', 'etx' => 'text/x-setext', 'xsl' => 'text/xml', 'xml' => 'text/xml', 'mpeg' => 'video/mpeg', 'mpg' => 'video/mpeg', 'mpe' => 'video/mpeg', 'qt' => 'video/quicktime', 'mov' => 'video/quicktime', 'mxu' => 'video/vnd.mpegurl', 'avi' => 'video/x-msvideo', 'movie' => 'video/x-sgi-movie', 'ice' => 'x-conference/x-cooltalk',); 00075 $this->activeFolder = isset($_GET['activeFolder']) ? $_GET['activeFolder'] : 0; 00076 $this->action = isset($_GET['action']) ? $_GET['action'] : ''; 00077 $this->actionID = isset($_GET['actionID']) ? $_GET['actionID'] : 0; 00078 $this->visibleFiles = $db->get_col("SELECT fileID FROM filevisible WHERE userID='".$_SESSION["userid"]."'"); 00079 $resDB = new RessourcenDB( $this ); 00080 }
| Filemanager::getAction | ( | ) |
Definition at line 86 of file class.filemanger.inc.php.
| Filemanager::getActionID | ( | ) |
Definition at line 90 of file class.filemanger.inc.php.
| Filemanager::getActiveFolder | ( | ) |
Definition at line 82 of file class.filemanger.inc.php.
| Filemanager::getArchivedFolder | ( | $ | folderID, | |
| $ | recursion = FALSE | |||
| ) |
Deliver a archive of the given folder.
Depending on the configuration, its possible that a recursive download archive is generated.
| Integer | $folderID | |
| Boolean | $recursion (Default = False) |
Definition at line 499 of file class.filemanger.inc.php.
References $_SESSION, and ZipProvider::checkArchiveSize().
00499 { 00500 global $resDB; 00501 global $settings; 00502 00503 if ($folderID > 0) { 00504 $folder = $resDB->getFolderByID($folderID); 00505 00506 if (!$folder instanceof Folder) { 00507 return "Ordner mit der ID ".$folderID." wurde nicht gefunden."; 00508 } 00509 } elseif ($folderID == -2) { 00510 $folder = new Folder(-2); 00511 $folder->setLink("Last 20"); 00512 $folder->setCourseID($_SESSION['course']); 00513 $folder->setDescription("Die 20 neuesten Dateien dieses Kurses."); 00514 } elseif ($folderID == -1) { 00515 $folder = new Folder(-1); 00516 $folder->setLink("Top 20"); 00517 $folder->setCourseID($_SESSION['course']); 00518 $folder->setDescription("Die 20 beliebtesten Dateien dieses Kurses."); 00519 } else { 00520 return "Ordner mit der ID ".$folderID." wurde nicht gefunden."; 00521 } 00522 00523 try { 00524 if (ZipProvider::checkArchiveSize($folder, $recursion) <= 00525 $settings['filemanager_archive_max_filesize']*1024*1024) { 00526 00527 $zipProvider = new ZipProvider($folder, $recursion); 00528 $zipProvider->createArchive(); 00529 $zipProvider->sendArchive(); 00530 } 00531 } catch (ArchiverException $e) { 00532 return $e->getMessage(); 00533 } 00534 00535 return ""; 00536 }
| Filemanager::getImgFolder | ( | ) |
Definition at line 94 of file class.filemanger.inc.php.
| Filemanager::openLink | ( | $ | fileID | ) |
Öffnet einen Link in einem neuen Fenster (Gegenstück zu downloadFile für Links)
| int | [$fileID] ID des zu öffnenden Links private |
Definition at line 404 of file class.filemanger.inc.php.
References $_SESSION, $db, and canSeeFile().
00404 { 00405 global $db; 00406 if (!$this->canSeeFile($fileID)) { 00407 return "Sie haben keine Berechtigung diesen Link zu öffnen!"; 00408 } 00409 // Ziel Url ermitteln 00410 $link = $db->get_var("SELECT link FROM filelist WHERE fileID='".$fileID."'"); 00411 // Zugriff wird geloggt 00412 $time = time(); 00413 $db->query("INSERT INTO filelog (userID, fileID, date) VALUES ('".$_SESSION['userid']."','$fileID','$time')"); 00414 $db->query("UPDATE filelist SET counter=counter+1 WHERE fileID='$fileID'"); 00415 if (Utilities::validateURL($link)) header("Location: ".$link); 00416 exit(); 00417 }
| Filemanager::replaceSpecialChars | ( | $ | string, | |
| $ | special | |||
| ) |
Ersetzt bestimmte Zeichen mit einem _
| string | [$string] String in dem Zeichen ersetzt werden sollen | |
| string | [$special] Ein String mit den SonderZeichen, die ersetzt werden sollen |
Definition at line 427 of file class.filemanger.inc.php.
00427 { 00428 $strlen = strlen($special); 00429 for ($i = 0 ; $i <= $strlen ; $i++) { 00430 $char = substr($special, $i, 1); 00431 $string = str_replace($char, "_", $string); 00432 $string = str_replace("__", "_", $string); 00433 } 00434 $string = str_replace("__", "_", $string); 00435 return $string; 00436 }
| Filemanager::runAction | ( | $ | file, | |
| $ | COLS, | |||
| $ | action = "", |
|||
| $ | actionID = "", |
|||
| $ | activeFolder = "" | |||
| ) |
Führt eine Aktion aus, die vom User ausgewählt wurde.
| object | [$file] details der aktuellen Datei, oder folderID | |
| int | [$COLS] Anzahl der Spalten der Filelist, wird fuer Colspan benoetigt | |
| string | $action Durchzuführende Aktion, fehlt diese Angabe, wird der GET-Parameter verwendet | |
| int | $actionID ID des Objekts, auf das die Aktion angewandt werden soll, fehlt diese Angabe, wird der GET-Parameter verwendet | |
| int | $activeFolder ID des aktuellen Verzeichnisses, fehlt diese Angabe, wird der GET-Parameter verwendet private |
Definition at line 176 of file class.filemanger.inc.php.
References $_SESSION, $action, $actionID, $activeFolder, $db, deleteFile(), deleteFolder(), and setRessourceVisibility().
00176 { 00177 global $db; 00178 if (empty($activeFolder)) $activeFolder = $_GET['activeFolder']; 00179 if (empty($action)) $action = isset($_GET['action']) ? $_GET['action'] : ''; 00180 if (empty($actionID)) $actionID = isset($_GET['actionID']) ? $_GET['actionID'] : ''; 00181 if (!$action || (is_object($file) && $file->fileID != $actionID) || (!is_object($file) && $file != $actionID)) return false; 00182 switch ($action) { 00183 case 'delete_trueFile': 00184 if ($_SESSION['userid'] == $file->userID || $_SESSION['usergroup'] == ADMIN || ($_SESSION["usergroup"] == DOZENT && $_SESSION["course"] > 0)) { 00185 if ($file->type == 'file') { // Wenn Datei dann loeschen 00186 $this->deleteFile($file->link); 00187 // Datei aus Suchmaschinen-Index löschen 00188 $spider = new Spider(); 00189 $spider->start("remove-file", $file->fileID); 00190 } 00191 $db->query("DELETE FROM filelist WHERE fileID='$file->fileID'"); 00192 $db->query("DELETE FROM filelog WHERE fileID='$file->fileID'"); 00193 $db->query("DELETE FROM filevisible WHERE fileID='$file->fileID'"); 00194 RoleArtefacts::deleteItem(RESSOURCE, (int)$file->fileID); 00195 TeamArtefacts::deleteItem(RESSOURCE, (int)$file->fileID); 00196 } else { 00197 return "Zugriff verweigert!"; 00198 } 00199 break; 00200 00201 case 'delete_trueFolder': 00202 if ($_SESSION['usergroup'] == ADMIN || ($_SESSION["usergroup"] == DOZENT && $_SESSION["course"] > 0)) { 00203 $this->deleteFolder($activeFolder); 00204 unset($_GET['activeFolder']); 00205 } else { 00206 return "Zugriff verweigert!"; 00207 } 00208 break; 00209 00210 00211 case 'editFolder': 00212 break; 00213 00214 case 'studentWriteFolder': 00215 if ($_SESSION['usergroup'] != 2) { 00216 $writeState = $db->get_var("SELECT student_write FROM filelist WHERE fileID='$actionID' "); 00217 $writeState = ($writeState == 1 ? 0 : 1); 00218 $db->query("UPDATE filelist SET student_write='$writeState' WHERE fileID='$actionID'"); 00219 } else { 00220 echo "<tr><td class='res_file-extra' colspan='".$COLS."'>Zugriff verweigert!</td>"; 00221 } 00222 break; 00223 00224 case 'setVisibilityDocentsOnly': 00225 if (isset($_GET['mode'])) $this->setRessourceVisibility($actionID, 3, $_GET['mode']); 00226 else $this->setRessourceVisibility($actionID, 3, 1); 00227 header('Location: filemanager.php?activeFolder='.$activeFolder); 00228 break; 00229 00230 case 'setVisibilityNoStudents': 00231 if (isset($_GET['mode'])) $this->setRessourceVisibility($actionID, 2, $_GET['mode']); 00232 else $this->setRessourceVisibility($actionID, 2, 1); 00233 header('Location: filemanager.php?activeFolder='.$activeFolder); 00234 break; 00235 00236 case 'setVisibilityAll': 00237 if (isset($_GET['mode'])) $this->setRessourceVisibility($actionID, 1, $_GET['mode']); 00238 else $this->setRessourceVisibility($actionID, 1, 1); 00239 header('Location: filemanager.php?activeFolder='.$activeFolder); 00240 break; 00241 } 00242 }
| Filemanager::setRessourceVisibility | ( | $ | ressourceID, | |
| $ | visibilityToSet, | |||
| $ | contentRecursive | |||
| ) | [private] |
Definition at line 300 of file class.filemanger.inc.php.
References $db.
Referenced by runAction().
00300 { 00301 global $db, $EZSQL_ERROR; 00302 // Momentane Sichtbarkeit der Ressource aus der DB auslesen 00303 $visible = $db->get_var("SELECT visible_type FROM filelist WHERE fileID='$ressourceID'"); 00304 // Ressource hat schon die gewünschte Sichtbarkeit 00305 if ($visible == $visibilityToSet && $contentRecursive == 1) return true; 00306 // Wenn die Ressource ein Ordner ist und dessen Sichtbarkeit eingeschränkt werden soll: 00307 // Sichtbarkeit untergeordneter Ordner, Dateien und Links ändern 00308 if ($contentRecursive > 1) { 00309 $ressources = $db->get_results("SELECT type, fileID, link , visible_type FROM filelist WHERE parent_object='$ressourceID'"); 00310 if ($ressources != null) { 00311 // Sichtbarkeit der untergeordneten Ressource nur ändern, 00312 // wenn sie eingeschränkt werden soll; Alle Unterordner durchgehen 00313 foreach($ressources as $ressource) { 00314 //für alle Dateien und Links in dem Ordner 00315 if ($ressource->type == "file") { 00316 $this->setRessourceVisibility($ressource->link, $visibilityToSet, $contentRecursive); 00317 } 00318 //für den Ordner selbst, alle Unterordner und deren Inhalt 00319 if ($contentRecursive == 2) $this->setRessourceVisibility($ressource->fileID, $visibilityToSet, 4); 00320 else $this->setRessourceVisibility($ressource->fileID, $visibilityToSet, $contentRecursive); 00321 } 00322 } 00323 } 00324 //Ressource mit ID $ressourceID in der DB ändern 00325 if ($contentRecursive != 2) { 00326 // Sichtbarkeitswerte für die Ressource auf der Datenbank updaten 00327 $errorCount = count($EZSQL_ERROR); 00328 $db->query("UPDATE filelist SET visible_type ='$visibilityToSet' WHERE fileID='$ressourceID'"); 00329 $visible = $db->get_var("SELECT visible_type FROM filelist WHERE fileID='$ressourceID'"); 00330 if (count($EZSQL_ERROR) > $errorCount) return false; 00331 if ($contentRecursive > 2) { 00332 $db->query("DELETE FROM filevisible WHERE fileID='".$ressourceID."'"); 00333 } 00334 } 00335 return true; 00336 }
| Filemanager::showFiles | ( | $ | statisticView = false |
) |
Definition at line 141 of file class.filemanger.inc.php.
References canSeeFile().
00141 { 00142 global $resDB; 00143 if ( $this->activeFolder > 0 ) { 00144 $folder = $resDB->getFolderByID( $this->activeFolder ); 00145 if (!$folder || !$this->canSeeFile($this->activeFolder)) //Nicht berechtigte Usergruppen dürfen den Ordner und seinen Inhalt nicht sehen 00146 //oder downloaden, auch nicht durch explizite Angabe des Links 00147 { 00148 return "Keine solche Ressource verfügbar!"; 00149 } 00150 } else { 00151 if ($this->activeFolder == -1) { 00152 $folder = new Folder(-1); 00153 $folder->setFileManager( $this ); 00154 $folder->setLink("Top 20"); 00155 } 00156 if ($this->activeFolder == -2) { 00157 $folder = new Folder(-2); 00158 $folder->setFileManager( $this ); 00159 $folder->setLink("20 neuesten Ressourcen"); 00160 } 00161 } 00162 00163 $folder->showFiles( $statisticView ); 00164 }
| Filemanager::showTree | ( | ) |
Erstellt den Verzeichnisbaum und gibt ihn aus
public
Definition at line 103 of file class.filemanger.inc.php.
References $_SESSION, and $db.
00103 { 00104 global $db; 00105 $template = new Template( PATH_TO_ROOT . "/ressourcen/templates/foldertree.html" ); 00106 $tree_entries = ""; 00107 00108 //Bestimmung der Anzeigeoptionen fuer spezielle User 00109 // INIT 00110 $course = $_SESSION['course']; 00111 // Setzt Standards fuer die Symbole 00112 $plus = 8; 00113 $minus = 6; 00114 $join = 3; 00115 $bottom = false; 00116 // MostDownloaded Files 00117 $last20 = new Folder(-2); 00118 $last20->setLink("Last 20"); 00119 $last20->setName("Die 20 neuesten Dateien dieses Kurses."); 00120 $last20->setFolderType(13); 00121 $last20->setLayerType(5); 00122 $tree_entries .= $last20->drawFolder("", false); 00123 00124 $last20 = new Folder(-1); 00125 $last20->setLink("Top 20"); 00126 $last20->setName("Die 20 beliebtesten Dateien dieses Kurses."); 00127 $last20->setFolderType(12); 00128 $last20->setLayerType(5); 00129 $tree_entries .= $last20->drawFolder("", false); 00130 00131 $mainFolder = new Folder(); 00132 $mainFolder->setFileManager( $this ); 00133 if ($Return = $mainFolder->printSubFolder()) { 00134 $tree_entries .= $Return; 00135 } else { 00136 $tree_entries .= "<span class='tableCell'>Noch keine Ordner angelegt.</span>"; 00137 } 00138 eval ( $template->getTemplate() ); 00139 }
Filemanager::$action [private] |
Definition at line 62 of file class.filemanger.inc.php.
Referenced by runAction().
Filemanager::$actionID [private] |
Definition at line 63 of file class.filemanger.inc.php.
Referenced by runAction().
Filemanager::$activeFolder [private] |
Definition at line 61 of file class.filemanger.inc.php.
Referenced by runAction().
Filemanager::$imgFolder [private] |
Definition at line 60 of file class.filemanger.inc.php.
Filemanager::$mimeTypes = array() [private] |
Definition at line 59 of file class.filemanger.inc.php.
Filemanager::$visibleFiles [private] |
Definition at line 64 of file class.filemanger.inc.php.
1.6.1